GtkWidget: Set screen info in GtkStyleContext.
authorCarlos Garnacho <carlosg@gnome.org>
Sat, 3 Jul 2010 11:20:45 +0000 (13:20 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:18 +0000 (15:37 +0100)
gtk/gtkwidget.c

index 3235f5c13b5de7b84cab4107f9cdd6df1696699c..24cb3809237748fd929e9df99b2ebb75ab89b33e 100644 (file)
@@ -7294,6 +7294,9 @@ gtk_widget_set_parent (GtkWidget *widget,
       path = gtk_widget_get_path (widget);
       gtk_style_context_set_path (context, path);
       gtk_widget_path_free (path);
+
+      gtk_style_context_set_screen (context,
+                                    gtk_widget_get_screen (widget));
     }
 }
 
@@ -7895,6 +7898,8 @@ do_screen_change (GtkWidget *widget,
 {
   if (old_screen != new_screen)
     {
+      GtkStyleContext *context;
+
       if (old_screen)
        {
          PangoContext *context = g_object_get_qdata (G_OBJECT (widget), quark_pango_context);
@@ -7903,6 +7908,10 @@ do_screen_change (GtkWidget *widget,
        }
 
       _gtk_tooltip_hide (widget);
+
+      context = gtk_widget_get_style_context (widget);
+      gtk_style_context_set_screen (context, new_screen);
+
       g_signal_emit (widget, widget_signals[SCREEN_CHANGED], 0, old_screen);
     }
 }
@@ -13283,6 +13292,9 @@ gtk_widget_get_style_context (GtkWidget *widget)
           path = gtk_widget_get_path (widget);
           gtk_style_context_set_path (context, path);
           gtk_widget_path_free (path);
+
+          gtk_style_context_set_screen (context,
+                                        gtk_widget_get_screen (widget));
         }
     }